<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script type="module">
    import Promise from "./index.js";
    // then返回的是一个新的Promise实例.
    // p2的状态以及值受p.then接收的回调函数的返回值的影响。
    //    详细：p2的状态以及值看p.then的成功还是失败的回调函数？答：p的状态为成功看成功回调，p的状态为失败看失败回调。
    //    回调函数返回值：
    //    1- 如果返回值为非Promise,那么该返回值即是p2的成功值，状态为成功。
    //    2- 如果返回的是一个Promise,那么p2的状态以及值与返回的Promise相同。
    //    3- 如果回调函数有异常，那么得到的p2的状态为失败，值为异常信息
    const p = new Promise(function(resolve,reject){
        // resolve(1);
        reject(2);
    })
    const p3 = new Promise((resolve,reject)=>{
        // resolve(90);
        reject(80);
    });
    const p2 = p.then(function(value){
        // throw "成功回调产生了异常";
        // console.log("成功回调函数",value);
        // return p3;
        // return 100;
        return new Promise((resolve,reject)=>{
            // resolve(90);
            reject(80);
        });
    },function(reason){
        // throw "失败回调函数产生了异常"
        // console.log("失败回调函数",reason);
        return 2000;
        // return new Promise((resolve,reject)=>{
        //     resolve(70);
        //     // reject(20)
        // })
    });
    console.log(p2);
</script>
</html>